<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<script>MathJax = {tex: {inlineMath: [["\\(", "\\)"]]}, svg: {fontCache: "global"}};</script>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.4.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.4.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
<script src="../static/mccole.js"></script>
<script>window.onload = () => fixPage()</script>

    <script defer data-domain="stjs.tech" src="https://plausible.io/js/plausible.js"></script>

    <link href="../static/mccole.css" rel="stylesheet" type="text/css">
    <title>Software Design by Example: <h1 id="links">Links</h1></title>
  </head>
  <body>
    <main>
      <p class="home"><a href="../">Software Design by Example</a></p>
      <h1 id="links">Links</h1>
      <table class="links">
<tr><th>Title</th><th>URL</th></tr>
<tr><td>A Simple Web Server</td><td><a href="http://aosabook.org/en/500L/a-simple-web-server.html">http://aosabook.org/en/500L/a-simple-web-server.html</a></td></tr>
<tr><td>acorn-walk</td><td><a href="https://www.npmjs.com/package/acorn-walk">https://www.npmjs.com/package/acorn-walk</a></td></tr>
<tr><td>acorn.js</td><td><a href="https://github.com/acornjs/acorn">https://github.com/acornjs/acorn</a></td></tr>
<tr><td>Alloy</td><td><a href="https://alloytools.org/">https://alloytools.org/</a></td></tr>
<tr><td>Amy Brown</td><td><a href="https://www.amyrhodabrown.com/">https://www.amyrhodabrown.com/</a></td></tr>
<tr><td>Andy Oram</td><td><a href="http://www.praxagora.com/">http://www.praxagora.com/</a></td></tr>
<tr><td>ANTLR</td><td><a href="https://www.antlr.org/">https://www.antlr.org/</a></td></tr>
<tr><td>Babel</td><td><a href="https://babeljs.io/">https://babeljs.io/</a></td></tr>
<tr><td>Bajel</td><td><a href="https://www.npmjs.com/package/bajel">https://www.npmjs.com/package/bajel</a></td></tr>
<tr><td>Bob Nystrom</td><td><a href="http://journal.stuffwithstuff.com/">http://journal.stuffwithstuff.com/</a></td></tr>
<tr><td>Brian Kernighan</td><td><a href="https://en.wikipedia.org/wiki/Brian_Kernighan">https://en.wikipedia.org/wiki/Brian_Kernighan</a></td></tr>
<tr><td>Build your own version of React</td><td><a href="https://dev.to/iainfreestone/9-examples-of-building-your-own-version-of-react-51a8">https://dev.to/iainfreestone/9-examples-of-building-your-own-version-of-react-51a8</a></td></tr>
<tr><td>Building Software Together</td><td><a href="https://buildtogether.tech/">https://buildtogether.tech/</a></td></tr>
<tr><td>caller</td><td><a href="https://www.npmjs.com/package/caller">https://www.npmjs.com/package/caller</a></td></tr>
<tr><td>CommonMark</td><td><a href="https://commonmark.org/">https://commonmark.org/</a></td></tr>
<tr><td>Contact address</td><td><a href="mailto:info@stjs.tech">mailto:info@stjs.tech</a></td></tr>
<tr><td>Contributor Covenant</td><td><a href="https://www.contributor-covenant.org">https://www.contributor-covenant.org</a></td></tr>
<tr><td>Crafting Interpreters</td><td><a href="https://craftinginterpreters.com/">https://craftinginterpreters.com/</a></td></tr>
<tr><td>Creative Commons - Attribution 4.0 International License</td><td><a href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</a></td></tr>
<tr><td>Cypress</td><td><a href="https://www.cypress.io/">https://www.cypress.io/</a></td></tr>
<tr><td>Data-Forge</td><td><a href="http://www.data-forge-js.com/">http://www.data-forge-js.com/</a></td></tr>
<tr><td>Delta debugging</td><td><a href="https://en.wikipedia.org/wiki/Delta_debugging">https://en.wikipedia.org/wiki/Delta_debugging</a></td></tr>
<tr><td>diagrams.net drawing tool</td><td><a href="https://www.diagrams.net/">https://www.diagrams.net/</a></td></tr>
<tr><td>doctest</td><td><a href="https://docs.python.org/3/library/doctest.html">https://docs.python.org/3/library/doctest.html</a></td></tr>
<tr><td>Donald Knuth</td><td><a href="https://www-cs-faculty.stanford.edu/~knuth/">https://www-cs-faculty.stanford.edu/~knuth/</a></td></tr>
<tr><td>Emacs</td><td><a href="https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/</a></td></tr>
<tr><td>Embedded JavaScript Templating</td><td><a href="https://ejs.co/">https://ejs.co/</a></td></tr>
<tr><td>Escodegen</td><td><a href="https://github.com/estools/escodegen/">https://github.com/estools/escodegen/</a></td></tr>
<tr><td>ESDoc</td><td><a href="https://esdoc.org/">https://esdoc.org/</a></td></tr>
<tr><td>ESLint</td><td><a href="https://eslint.org/">https://eslint.org/</a></td></tr>
<tr><td>Esprima</td><td><a href="https://esprima.org/">https://esprima.org/</a></td></tr>
<tr><td>Etherpad</td><td><a href="https://etherpad.org/">https://etherpad.org/</a></td></tr>
<tr><td>Expect</td><td><a href="https://en.wikipedia.org/wiki/Expect">https://en.wikipedia.org/wiki/Expect</a></td></tr>
<tr><td>Function.prototype.bind()</td><td><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind</a></td></tr>
<tr><td>Fuzzing</td><td><a href="https://en.wikipedia.org/wiki/Fuzzing">https://en.wikipedia.org/wiki/Fuzzing</a></td></tr>
<tr><td>Git</td><td><a href="https://git-scm.com/">https://git-scm.com/</a></td></tr>
<tr><td>Git man page generator</td><td><a href="https://git-man-page-generator.lokaltog.net/">https://git-man-page-generator.lokaltog.net/</a></td></tr>
<tr><td>GitHub Pages</td><td><a href="https://pages.github.com/">https://pages.github.com/</a></td></tr>
<tr><td>Gitlet</td><td><a href="http://gitlet.maryrosecook.com/">http://gitlet.maryrosecook.com/</a></td></tr>
<tr><td>Glosario</td><td><a href="https://github.com/carpentries/glosario">https://github.com/carpentries/glosario</a></td></tr>
<tr><td>GNU Make</td><td><a href="https://www.gnu.org/software/make/">https://www.gnu.org/software/make/</a></td></tr>
<tr><td>Graphlib</td><td><a href="https://www.npmjs.com/package/graphlib">https://www.npmjs.com/package/graphlib</a></td></tr>
<tr><td>Greg Wilson</td><td><a href="https://third-bit.com/">https://third-bit.com/</a></td></tr>
<tr><td>Hippocratic License</td><td><a href="https://firstdonoharm.dev/">https://firstdonoharm.dev/</a></td></tr>
<tr><td>Human Resource Machine</td><td><a href="https://tomorrowcorporation.com/humanresourcemachine">https://tomorrowcorporation.com/humanresourcemachine</a></td></tr>
<tr><td>Intelligent code completion</td><td><a href="https://en.wikipedia.org/wiki/Intelligent_code_completion">https://en.wikipedia.org/wiki/Intelligent_code_completion</a></td></tr>
<tr><td>Istanbul</td><td><a href="https://istanbul.js.org/">https://istanbul.js.org/</a></td></tr>
<tr><td>Jake</td><td><a href="https://jakejs.com/">https://jakejs.com/</a></td></tr>
<tr><td>Java</td><td><a href="https://en.wikipedia.org/wiki/Java_(programming_language)">https://en.wikipedia.org/wiki/Java_(programming_language)</a></td></tr>
<tr><td>JavaScript for Data Science</td><td><a href="https://js4ds.org/">https://js4ds.org/</a></td></tr>
<tr><td>JavaScript Promise combinators</td><td><a href="https://2ality.com/2019/08/promise-combinators.html">https://2ality.com/2019/08/promise-combinators.html</a></td></tr>
<tr><td>JavaScript Standard Style</td><td><a href="https://standardjs.com/">https://standardjs.com/</a></td></tr>
<tr><td>Jekyll</td><td><a href="https://jekyllrb.com/">https://jekyllrb.com/</a></td></tr>
<tr><td>Jest</td><td><a href="https://jestjs.io/">https://jestjs.io/</a></td></tr>
<tr><td>JSDoc</td><td><a href="https://jsdoc.app/">https://jsdoc.app/</a></td></tr>
<tr><td>kilo text editor</td><td><a href="https://viewsourcecode.org/snaptoken/kilo/index.html">https://viewsourcecode.org/snaptoken/kilo/index.html</a></td></tr>
<tr><td>LaTeX</td><td><a href="https://www.latex-project.org/">https://www.latex-project.org/</a></td></tr>
<tr><td>Learner personas</td><td><a href="https://teachtogether.tech/en/index.html#s:process-personas">https://teachtogether.tech/en/index.html#s:process-personas</a></td></tr>
<tr><td>Let's build a browser engine!</td><td><a href="https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html">https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html</a></td></tr>
<tr><td>Let's Build a Simple Database</td><td><a href="https://cstack.github.io/db_tutorial/">https://cstack.github.io/db_tutorial/</a></td></tr>
<tr><td>Let's Dev: A Package Manager</td><td><a href="https://classic.yarnpkg.com/blog/2017/07/11/lets-dev-a-package-manager/">https://classic.yarnpkg.com/blog/2017/07/11/lets-dev-a-package-manager/</a></td></tr>
<tr><td>Lynx browser</td><td><a href="https://lynx.browser.org/">https://lynx.browser.org/</a></td></tr>
<tr><td>Markdown</td><td><a href="https://en.wikipedia.org/wiki/Markdown">https://en.wikipedia.org/wiki/Markdown</a></td></tr>
<tr><td>markdown-it</td><td><a href="https://markdown-it.github.io/">https://markdown-it.github.io/</a></td></tr>
<tr><td>markdown-it-anchor</td><td><a href="https://www.npmjs.com/package/markdown-it-anchor">https://www.npmjs.com/package/markdown-it-anchor</a></td></tr>
<tr><td>Martha's Rules</td><td><a href="https://journals.sagepub.com/doi/10.1177/088610998600100206">https://journals.sagepub.com/doi/10.1177/088610998600100206</a></td></tr>
<tr><td>Mary Rose Cook</td><td><a href="https://maryrosecook.com/">https://maryrosecook.com/</a></td></tr>
<tr><td>Matt Brubeck</td><td><a href="https://limpet.net/mbrubeck/">https://limpet.net/mbrubeck/</a></td></tr>
<tr><td>Maël Nison</td><td><a href="https://arcanis.github.io/">https://arcanis.github.io/</a></td></tr>
<tr><td>McCole</td><td><a href="https://gvwilson.github.io/mccole/">https://gvwilson.github.io/mccole/</a></td></tr>
<tr><td>microtime</td><td><a href="https://www.npmjs.com/package/microtime">https://www.npmjs.com/package/microtime</a></td></tr>
<tr><td>Mike DiBernardo</td><td><a href="https://mikedebo.com/">https://mikedebo.com/</a></td></tr>
<tr><td>Mike Hoye</td><td><a href="http://exple.tive.org/blarg/">http://exple.tive.org/blarg/</a></td></tr>
<tr><td>minimist</td><td><a href="https://www.npmjs.com/package/minimist">https://www.npmjs.com/package/minimist</a></td></tr>
<tr><td>Mocha</td><td><a href="https://mochajs.org/">https://mochajs.org/</a></td></tr>
<tr><td>Node crypto module</td><td><a href="https://nodejs.org/api/crypto.html">https://nodejs.org/api/crypto.html</a></td></tr>
<tr><td>Node filesystem status class.</td><td><a href="https://nodejs.org/api/fs.html#fs_class_fs_stats">https://nodejs.org/api/fs.html#fs_class_fs_stats</a></td></tr>
<tr><td>Node fs package</td><td><a href="https://nodejs.org/api/fs.html">https://nodejs.org/api/fs.html</a></td></tr>
<tr><td>Node fs-extra package</td><td><a href="https://www.npmjs.com/package/fs-extra">https://www.npmjs.com/package/fs-extra</a></td></tr>
<tr><td>Node glob</td><td><a href="https://www.npmjs.com/package/glob">https://www.npmjs.com/package/glob</a></td></tr>
<tr><td>Node mock-fs</td><td><a href="https://www.npmjs.com/package/mock-fs">https://www.npmjs.com/package/mock-fs</a></td></tr>
<tr><td>Node path</td><td><a href="https://nodejs.org/api/path.html">https://nodejs.org/api/path.html</a></td></tr>
<tr><td>Node prompt-sync</td><td><a href="https://www.npmjs.com/package/prompt-sync">https://www.npmjs.com/package/prompt-sync</a></td></tr>
<tr><td>Node semver</td><td><a href="https://www.npmjs.com/package/semver">https://www.npmjs.com/package/semver</a></td></tr>
<tr><td>Node.js</td><td><a href="https://nodejs.org/en/">https://nodejs.org/en/</a></td></tr>
<tr><td>NPM</td><td><a href="https://www.npmjs.com/">https://www.npmjs.com/</a></td></tr>
<tr><td>OAuth</td><td><a href="https://oauth.net/">https://oauth.net/</a></td></tr>
<tr><td>object-sizeof package</td><td><a href="https://www.npmjs.com/package/object-sizeof">https://www.npmjs.com/package/object-sizeof</a></td></tr>
<tr><td>Pandas</td><td><a href="https://pandas.pydata.org/">https://pandas.pydata.org/</a></td></tr>
<tr><td>PHP</td><td><a href="https://www.php.net/">https://www.php.net/</a></td></tr>
<tr><td>Punching Holes</td><td><a href="http://exple.tive.org/blarg/2020/11/26/punching-holes/">http://exple.tive.org/blarg/2020/11/26/punching-holes/</a></td></tr>
<tr><td>Python</td><td><a href="https://www.python.org/">https://www.python.org/</a></td></tr>
<tr><td>Red Door Family Shelter</td><td><a href="https://www.reddoorshelter.ca/">https://www.reddoorshelter.ca/</a></td></tr>
<tr><td>Redux</td><td><a href="https://redux.js.org/">https://redux.js.org/</a></td></tr>
<tr><td>Semantic versioning specification</td><td><a href="https://semver.org/">https://semver.org/</a></td></tr>
<tr><td>Shunting-yard algorithm</td><td><a href="https://en.wikipedia.org/wiki/Shunting-yard_algorithm">https://en.wikipedia.org/wiki/Shunting-yard_algorithm</a></td></tr>
<tr><td>Software Tools in JavaScript</td><td><a href="https://stjs.tech/">https://stjs.tech/</a></td></tr>
<tr><td>Software Tools in JavaScript repository</td><td><a href="https://github.com/software-tools-in-javascript/stjs/">https://github.com/software-tools-in-javascript/stjs/</a></td></tr>
<tr><td>SVG Screenshot</td><td><a href="https://chrome.google.com/webstore/detail/svg-screenshot/nfakpcpmhhilkdpphcjgnokknpbpdllg">https://chrome.google.com/webstore/detail/svg-screenshot/nfakpcpmhhilkdpphcjgnokknpbpdllg</a></td></tr>
<tr><td>Tavish Armstrong</td><td><a href="http://tavisharmstrong.com/">http://tavisharmstrong.com/</a></td></tr>
<tr><td>Teaching Tech Together</td><td><a href="http://teachtogether.tech/">http://teachtogether.tech/</a></td></tr>
<tr><td>Termit</td><td><a href="https://github.com/hakash/termit">https://github.com/hakash/termit</a></td></tr>
<tr><td>The Architecture of Open Source Applications</td><td><a href="https://aosabook.org/">https://aosabook.org/</a></td></tr>
<tr><td>The Birthday Problem</td><td><a href="https://en.wikipedia.org/wiki/Birthday_problem#A_simple_exponentiation">https://en.wikipedia.org/wiki/Birthday_problem#A_simple_exponentiation</a></td></tr>
<tr><td>The Carpentries</td><td><a href="https://carpentries.org/">https://carpentries.org/</a></td></tr>
<tr><td>The Comprehensive TeX Archive Network</td><td><a href="https://www.ctan.org/">https://www.ctan.org/</a></td></tr>
<tr><td>The ENIAC Programmers Project</td><td><a href="http://eniacprogrammers.org/">http://eniacprogrammers.org/</a></td></tr>
<tr><td>Tidyverse</td><td><a href="https://www.tidyverse.org/">https://www.tidyverse.org/</a></td></tr>
<tr><td>TLA+</td><td><a href="https://lamport.azurewebsites.net/tla/tla.html">https://lamport.azurewebsites.net/tla/tla.html</a></td></tr>
<tr><td>Trey Huffine</td><td><a href="https://medium.com/@treyhuffine">https://medium.com/@treyhuffine</a></td></tr>
<tr><td>Understand JavaScript Promises by Building a Simple Promise Example</td><td><a href="https://levelup.gitconnected.com/understand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720">https://levelup.gitconnected.com/understand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720</a></td></tr>
<tr><td>Using data attributes</td><td><a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes">https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes</a></td></tr>
<tr><td>WAVE</td><td><a href="https://wave.webaim.org/">https://wave.webaim.org/</a></td></tr>
<tr><td>Why We Can't Have Nice Things</td><td><a href="https://third-bit.com/2015/06/11/why-we-cant-have-nice-things/">https://third-bit.com/2015/06/11/why-we-cant-have-nice-things/</a></td></tr>
<tr><td>Wikipedia article on programming tools</td><td><a href="https://en.wikipedia.org/wiki/Programming_tool">https://en.wikipedia.org/wiki/Programming_tool</a></td></tr>
<tr><td>Wolfram Alpha</td><td><a href="http://wolframalpha.com">http://wolframalpha.com</a></td></tr>
<tr><td>You can't parse [X]HTML with regex</td><td><a href="https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454">https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454</a></td></tr>
</table>
    </main>
    <footer>
  <hr/>
  <p>
    Copyright © 2022 Greg Wilson
    &nbsp;
    <a href="../license/"><img class="icon" src="../static/cc-by-nc.svg" alt="CC-BY-NC icon"/></a>
    <a href="../license/"><img class="icon" src="../static/hippocratic.svg" alt="Hippocratic License icon"/></a>
    <a href="https://github.com/software-tools-books/stjs/"><img class="icon" src="../static/github.svg" alt="GitHub icon"/></a>
    <a href="mailto:gvwilson@third-bit.com"><img class="icon" src="../static/email.svg" alt="email icon"/></a>
  </p>
</footer>

  </body>
</html>
